export default class MathCount {
	constructor(arg) {}
	/**
	 * 添加数字
	 * @param {string} name math名，后期通过该名称获取其相应值
	 * @param {string/number} num 数字
	 */
	addNums(name, num) {
		try {
			this[name].push(num);
		} catch (e) {
			this[name] = [];
			this[name].push(num);
		}
	}
	/**
	 *  通过math名 获取数字
	 * @param {string} name math名，后期通过该名称获取其相应值
	 */
	getNums(name) {
		return this[name];
	}
	/**
	 * 通过math名 获取总和
	 * @param {string} name math名，后期通过该名称获取其相应值
	 */
	getSum(name) {
		return this.numAdd(...this[name]);
	}
	/**
	 * 通过math名 获取减后的值
	 * @param {string} name math名，后期通过该名称获取其相应值
	 */
	getReducer(name) {
		return this.numReducer(...this[name]);
	}
	/**
	 * 通过math名 获取相除后的值
	 * @param {string} name math名，后期通过该名称获取其相应值
	 */
	getReducer(name) {
		return this.numChu(...this[name]);
	}
	/**
	 * 数字相加
	 */
	numAdd(...nums) {
		let sum = 0;
		nums.forEach(item => {
			item *= Math.pow(10, 10);
			sum += parseInt(item);
		});
		return sum / 1e10;
	}
	/**
	 * 数字相减
	 */
	numReducer(...nums) {
		let sum = nums[0] * Math.pow(10, 10) * 2;
		nums.forEach(item => {
			item *= Math.pow(10, 10);
			sum -= parseInt(item); //parseInt主要是为了 如果小数超过了我们所乘的倍数那么就舍去一般不会超过
		});
		return sum / 1e10;
	}
	/**
	 * 数字相除
	 */
	numChu(...nums) {
		let sum = nums[0] *= Math.pow(10, 10);
		nums.forEach((item, index) => {
			item *= Math.pow(10, 10);
			if (index > 0) {
				sum /= parseInt(item); //parseInt主要是为了 如果小数超过了我们所乘的倍数那么就舍去一般不会超过
			}
		});
		return sum;
	}

}
